Assignment
Objectives
Also including hints on suggested readings per
section, posted by Andrew
Shakirow on JavaRanch.
Section 1: Application Design Concepts and Principles
- Explain the main advantages of an
object-oriented approach to system design including the effect of
encapsulation, inheritance, and use of interfaces on architectural
characteristics.
- Describe how the principle of
"separation of concerns" has been applied to the main system
tiers of a Java Platform, Enterprise Edition application. Tiers include
client (both GUI and web), web (web container), business (EJB container),
integration, and resource tiers.
- Describe how the principle of
"separation of concerns" has been applied to the layers of a
Java EE application. Layers include application, virtual platform
(component APIs), application infrastructure (containers), enterprise
services (operating system and virtualization), compute and storage, and
the networking infrastructure layers.
Suggested readings:
- UML Distilled – 3rd Edition
- Java Design: Objects, UML, and Process –
Kirk Knoernschild
- Sun Certified Enterprise Architect for J2EE Technology
Study Guide - Mark Cade and Simon Roberts
- Sun Certified Enterprise Architect for Java EE Study
Guide – Paul Allen and Joseph Bambara
Section
2: Common Architectures
- Explain the advantages and disadvantages
of two-tier architectures when examined under the following topics:
scalability, maintainability, reliability, availability, extensibility,
performance, manageability, and security.
- Explain the advantages and disadvantages
of three-tier architectures when examined under the following topics:
scalability, maintainability, reliability, availability, extensibility,
performance, manageability, and security
- Explain the advantages and disadvantages
of multi-tier architectures when examined under the following topics:
scalability, maintainability, reliability, availability, extensibility,
performance, manageability, and security.
- Explain the benefits and drawbacks of rich
clients and browser-based clients as deployed in a typical Java EE
application.
- Explain appropriate and inappropriate uses
for web services in the Java EE platform
Suggested readings:
- Designing Enterprise Applications with the J2EE
Platform (SUN)
- J2EE Architect's Handbook
Section
3: Integration and Messaging
- Explain possible approaches for
communicating with an external system from a Java EE technology-based
system given an outline description of those systems and outline the
benefits and drawbacks of each approach.
- Explain typical uses of web services and
XML over HTTP as mechanisms to integrate distinct software components.
- Explain how JCA and JMS are used to
integrate distinct software components as part of an overall Java EE
application.
Suggested readings:
- Enterprise Integration Patterns:
Designing, Building, and Deploying Messaging Solutions – Gregor Hohpe and
Bobby Woolf
- J2EE Connector Architecture and Enterprise
Application Integration (SUN)
- Java Message Service – Richard
Monson-Haefel and David Chappell
Section
4: Business Tier Technologies
- Explain and contrast uses for entity
beans, entity classes, stateful and stateless session beans, and
message-driven beans, and understand the advantages and disadvantages of
each type.
- Explain and contrast the following persistence
strategies: container-managed persistence (CMP) BMP, JDO, JPA, ORM and
using DAOs (Data Access Objects) and direct JDBC technology-based
persistence under the following headings: ease of development,
performance, scalability, extensibility, and security.
- Explain how Java EE supports the
deployment of server-side components implemented as web services and the
advantages and disadvantages of adopting such an approach.
- Explain the benefits of the EJB 3
development model over previous EJB generations for ease of development
including how the EJB container simplifies EJB development.
Suggested readings:
- EJB 3.0 Specification (JSR 220: Enterprise
JavaBeansTM,Version 3.0)
- Mastering Enterprise JavaBeans 3.0 – 4th
Edition
- Sun JEE tutorial
Section 5:
Web Tier Technologies
- State the benefits and drawbacks of
adopting a web framework in designing a Java EE application
- Explain standard uses for JSP pages and
servlets in a typical Java EE application.
- Explain standard uses for
JavaServer Faces components in a typical Java EE application.
- Given a system requirements definition,
explain and justify your rationale for choosing a web-centric or
EJB-centric implementation to solve the requirements. Web-centric means
that you are providing a solution that does not use EJB components.
EJB-centric solution will require an application server that supports EJB
components.
Suggested readings:
- JSP Specification
(JSR-152: Java Server Pages 2.0)
- JSF Specification (JSR-252: Java Server
Faces 1.2)
- Sun Java Web Services Tutorial
- Sun JEE tutorial
- SOA using Java Web Services
Section
6: Applicability of Java EE Technology
- Given a specified business problem, design
a modular solution that solves the problem using Java EE.
- Explain how the Java EE platform enables
service oriented architecture (SOA) -based applications.
- Explain how you would design a Java EE
application to repeatedly measure critical non-functional requirements and
outline a standard process with specific strategies to refactor that
application to improve on the results of the measurements.
Suggested readings:
- Practical J2EE Application Architecture
- J2EE Anti-Patterns
Section
7: Patterns
- From a list, select the most appropriate pattern
for a given scenario. Patterns are limited to those documented in the book
- Alur, Crupi and Malks (2003). Core J2EE Patterns: Best Practices and
Design Strategies 2nd Edition and named using the names given in that
book.
- From a list, select the most appropriate
pattern for a given scenario. Patterns are limited to those documented in
the book - Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides
(1995). Design Patterns: Elements of Reusable Object-Oriented Software and
are named using the names given in that book.
- From a list, select the benefits and
drawbacks of a pattern drawn from the book - Gamma, Erich; Richard Helm,
Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements
of Reusable Object-Oriented Software.
- From a list, select the benefits and
drawbacks of a specified Core J2EE pattern drawn from the book – Alur,
Crupi and Malks (2003). Core J2EE Patterns: Best Practices and Design
Strategies 2nd Edition.
Suggested readings:
- Core J2EE Patterns
- Design Patterns: Elements of Reusable
Object-Oriented Software - GoF
- Head First Design Patterns
Section
8: Security
- Explain the client-side security model for
the Java SE environment, including the Web Start and applet deployment
modes.
- Given an architectural system specification,
select appropriate locations for implementation of specified security
features, and select suitable technologies for implementation of those
features
- Identify and classify potential threats to
a system and describe how a given architecture will address the threats.
- Describe the commonly used declarative and
programmatic methods used to secure applications built on the Java EE
platform, for example use of deployment descriptors and JAAS.
Suggested readings:
- Java Security
- Core Security Patterns
- Sun JEE tutorial